package trabalho1;

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectOutputStream;

public abstract class ImportarDados {
    
    private final String nomeArquivoEntrada;
    private String texto = "";    
    private String[] linhas;
    
    private void lerDados(){
        BufferedReader reader = null;
        try{
            try{
                
                reader = new BufferedReader(new FileReader(nomeArquivoEntrada));
                String line;
                do {
                    line = reader.readLine();
                    if(line != null) {
                        texto += line + "\n";
                    }
                    
                } while(line != null);
                
            } finally {
                if (reader != null)
                    reader.close();
            }
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }      
    }
    
    public void gravarDados(String nomeArquivoSaida, Object objeto){        
        try {
            ObjectOutputStream ostream = null;
            try {
                ostream = new ObjectOutputStream(new FileOutputStream
                        (nomeArquivoSaida));
                    ostream.writeObject(objeto);
                        
            } finally {
                if (ostream != null)
                    ostream.close();
            }
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }

    public String getTexto() {
        return texto;
    }

    void dividirEmLinhas(){
        linhas = getTexto().split("[\n;]");
    }

    public String[] getLinhas() {
        return linhas;
    }
    
    abstract void atribuir();

    public ImportarDados(String nomeArquivoEntrada) {
        this.nomeArquivoEntrada = nomeArquivoEntrada;
        lerDados();
    } 
}
